package org.swim.session;

import javax.ejb.Remote;

import org.swim.entity.User;
import java.util.List;
import org.swim.entity.Ability;


@Remote
public interface UserManagerRemote {

	/**
	 * Questo metodo viene invocato per nominare un nuovo amministratore 
	 * 
	 * @param userID l'ID dell'utente che viene nominato amministratore
	 */
	public void nominateAdmin(int userID);
	
	/**
	 * Questo metodo viene invocato per revocare l'amministrazione ad un utente
	 * 
	 * @param userID l'ID dell'utente a cui viene revocata l'amministrazione
	 */
	public void revokeAdmin(int userID);
	
	/**
	 * 
	 * 
	 * @param userID
	 * @param newPass
	 * @return
	 */
	public int changePassword(int userID, String newPass);
	
	public int changeMail(int userID, String newMail);
	
	public User getUser(int userID);
	
	public List<Ability> getAbilityListByID(int userID);
	
	public List<Ability> getFriendListByID (int userID);

	public void changeAvatar(int userID, String newAvatar);
	
	public boolean existingAbilityRequest(int userID, int abilityID);


	
}
